package br.com.exoticacalcados.dao;

import java.util.List;
import java.io.Serializable;







import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;

import br.com.exoticacalcados.entidades.Funcionario;
import br.com.exoticacalcados.entidades.HibernateUtil;
import br.com.exoticacalcados.entidades.Pessoa;

public class FuncionarioDao implements Serializable{
	private Funcionario funcionario;
	private Pessoa pessoa;
	private List<Funcionario> listaFuncionario;
	private Session session;
	private Transaction trans;
	
	public void adicionarFuncionario(Funcionario funcionario) {
		
		try {
			session = HibernateUtil.getSessionFactory().openSession();
			trans = session.beginTransaction();
			session.save(funcionario);
			trans.commit();

		} catch (HibernateException e) {
			trans.rollback();
			e.printStackTrace();
		} finally {

			session.close();
		}
	
		listaFuncionario.add(funcionario);
	}

	public List<Funcionario> getListaFuncionario() {
		
		try {
			session = HibernateUtil.getSessionFactory().openSession();
			trans = session.beginTransaction();

			Criteria cri = session.createCriteria(Funcionario.class);
			this.listaFuncionario = cri.list();
		} catch (HibernateException e) {
			trans.rollback();
			e.printStackTrace();
		} finally {
			session.close();
		}

		return listaFuncionario;
	}

	public void removerFuncionario(Funcionario funcionario) {
		
		try {
			session = HibernateUtil.getSessionFactory().openSession();
			trans = session.beginTransaction();

			funcionario = new Funcionario();
			funcionario = funcionario;

			session.delete(funcionario);
			trans.commit();
		} catch (HibernateException e) {
			trans.rollback();
			e.printStackTrace();
		} finally {
			session.close();
		}

	}
	public void atualizarFuncionario(Funcionario funcionario) {
		
        try {
            session = HibernateUtil.getSessionFactory().openSession();
            trans = session.beginTransaction();
            session.update(funcionario);
            trans.commit();
        } catch (HibernateException e) {
        	trans.rollback();
        	e.printStackTrace();
        } finally {
            session.close();
        }
        
		
        
    }
	

}
